package com.xyht.sca_s.student_manage_system.common.util;

import org.apache.commons.lang3.ArrayUtils;

import java.util.Date;
import java.util.List;

public class ParamCheckUtil {
    public static boolean isNullOrEmpty(Object object) {
        if (object == null) {
            return true;
        }
        if (object instanceof String) {
            if (((String) object).isEmpty()) {
                return true;
            }
        }
        return false;
    }

    public static boolean isNullOrEmpty(Object... objects) {
        for (Object object : ArrayUtils.nullToEmpty(objects)) {
            if (object == null) {
                return true;
            }
            if (object instanceof String) {
                if (((String) object).isEmpty()) {
                    return true;
                }
            } else if (object instanceof List) {
                if (((List<?>) object).isEmpty()) {
                    return true;
                }
            }
        }
        return false;
    }

    /**
     * 校验是否为有效身份证号
     *
     * @param idCard 身份证号
     * @return true/false
     */
    public static boolean isValidIDCard(String idCard) {
        String regex = "^[1-9]\\d{5}(18|19|20)\\d{2}(0\\d|10|11|12)([0-2]\\d|30|31)\\d{3}[0-9Xx]$";
        return idCard.matches(regex);
    }

    /**
     * 校验是否为有效手机号
     *
     * @param phone 手机号
     * @return true/false
     */
    public static boolean isValidPhone(String phone) {
        String regex = "^1[3-9]\\d{9}$";
        return phone.matches(regex);
    }

    /**
     * 校验是否合法时间区间
     * 开始时间早于结束时间
     *
     * @param startDate 开始时间
     * @param endDate   结束时间
     * @return true/false
     */
    public static boolean isLegalDateRange(Date startDate, Date endDate) {
        return startDate != null && endDate != null && startDate.before(endDate);
    }

}
